1

前言

相对于 spring 对 mybatis 以及 redis 等的整合所需要的各种配置文件,在 springboot 下,已经大大的简化了,你可能只是需要增加个依赖,加个注解,然后在配置文件中添加一些属性,就已经集成完成了。真正的体现了springboot的“约定大于配置”。

问题

但是,在实际的开发中,还是遇到了一些问题,比如我有一个微服务rms-service,整合了 mybatis 以及 redis 。此外,我还有一个专门用来进行定时任务的另一个微服务,假设为schedule-service。而在schedule-service这个微服务下,同样需要进行数据操作,我不可能还要在schedule-service下再一次进行集成,这样大大的增加了代码量。

思路

基于以上的问题,我的解决方案是基于springcloud的分布式配置,实现配置统一。其次,是将有关数据操作的都单独部署成一个模块,比如我集成 mybatis的模块db-mysql,集成redis的模块db-redis,使用redis作为内存缓存模块db-cache。因为项目是使用springcloud微服务架构,所以所有微服务都注册到同一个eureka服务注册中心,每个需要进行数据操作的微服务只需依赖数据操作的模块,如db-mysql,db-cache,并且在bootstrap.yml 配置文件中,指定配置中心服务的地址以及配置文件的name和profile:

spring:
  # 配置中心服务的地址
  cloud:
    config:
      name: data
      profile: ${spring.profiles.active} # 要读取的配置文件profile属性
#      uri: http://127.0.0.1:7001
      #label: ${spring.profiles.active}
      discovery:
        enabled: true                                 # 默认false,设为true表示使用注册中心中的configserver配置而不自己配置configserver的uri
        serviceId: config-server
  profiles:
    active: dev

结语

以上仅为本人对数据操作独立模块化的一些认识,在此算是抛砖引玉。关于整合也写了相关博文:

db-mysql模块中对mybatis-plus的整合:

【springboot系列】springboot整合独立模块Druid + mybatis-plus

db-redis、db-cache模块中使用Redis作为内存缓存:

【springboot系列】springboot整合独立模块 redis 做缓存


Ason
67 声望9 粉丝

不断挖坑,然后不断填坑。